package javaCode.chapter07.extend;

//输入ctrl + H 可以看到类的继承关系
public class Sub extends Base {

    public Sub(int age){
        //1. 要调用父类的无参构造器
        super(); //父类的无参构造器 或者什么都不写，默认的就是调用super()
        System.out.println("子类Sub(int age)构造器被调用....");
    }
    public Sub() { //构造器
        //super; //默认调用父类的无参构造器
        super("smith",20);
        System.out.println("子类Sub()构造器被调用....");
    }
    //当创建子类时，不管使用子类的哪个构造器，默认情况下总会调用父类的无参构造器
    public Sub(String name){
        //do nothing...
        super("tom",30);
        System.out.println("子类Sub(String name)构造器被调用....");
    }

    public void sayOk(){ //子类方法
        //非私有的属性和方法可以直接访问
        //但是私有属性和方法不能在子类直接访问
        System.out.println(n1 + " " + n2 + " " + n3);
        test100();
        test200();
        test300();
        //test400(); 错误

        //要通过父类提供的方法去访问
        System.out.println("n4=" + getN4());
        callTest400(); //
    }
}
